package com.futu.es.dto;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * MongoDB查询参数DTO
 */
@Data
public class MangodbQueryDto {
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 用户名（支持模糊查询）
     */
    private String username;
    
    /**
     * 景点ID
     */
    private Long spotId;
    
    /**
     * 景点名称（支持模糊查询）
     */
    private String spotName;
    
    /**
     * 最低评分
     */
    private Integer minRating;
    
    /**
     * 最高评分
     */
    private Integer maxRating;
    
    /**
     * 访问开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    
    /**
     * 访问结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    
    /**
     * 中心点纬度（用于地理位置查询）
     */
    private Double latitude;
    
    /**
     * 中心点经度（用于地理位置查询）
     */
    private Double longitude;
    
    /**
     * 搜索半径（单位：公里，用于地理位置查询）
     */
    private Double radius;
    
    /**
     * 分页 - 当前页码（从0开始）
     */
    private Integer page = 0;
    
    /**
     * 分页 - 每页记录数
     */
    private Integer size = 10;
    
    /**
     * 排序字段
     */
    private String sortField = "visitTime";
    
    /**
     * 排序方向（asc或desc）
     */
    private String sortDirection = "desc";
} 